/* *****************************************************************************
 * JFab (http://code.google.com/p/jfab)
 * Copyright (c) 2011 JFab.org
 * Admin jfab@jeffreythompson.net
 *
 * See the file "LICENSE.txt" for information on usage and redistribution of
 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
 * *****************************************************************************/


package org.jfab.core.io;

import org.jfab.core.model.CGClass;
import org.jfab.core.model.CGEnum;
import org.jfab.core.model.CGInterface;


/**
 * Provides a standard, immutable group of writers.
 */
public final class WriterGroup
{
    /** Class writer. */
    private final CGWriter<CGClass> _classWriter;

    /** Enum writer. */
    private final CGWriter<CGEnum> _enumWriter;

    /** Interface writer. */
    private final CGWriter<CGInterface> _interfaceWriter;

    /**
     * Construct this object with the given parameters.
     *
     * @param  interfaceWriter  Interface writer.
     * @param  classWriter      Class writer.
     * @param  enumWriter       Enum writer.
     */
    public WriterGroup(CGWriter<CGInterface> interfaceWriter,
        CGWriter<CGClass> classWriter, CGWriter<CGEnum> enumWriter)
    {
        _interfaceWriter = interfaceWriter;
        _classWriter = classWriter;
        _enumWriter = enumWriter;
    }

    /**
     * @return  the classWriter
     */
    public final CGWriter<CGClass> getClassWriter()
    {
        return _classWriter;
    }

    /**
     * @return  the enumWriter
     */
    public final CGWriter<CGEnum> getEnumWriter()
    {
        return _enumWriter;
    }

    /**
     * @return  the interfaceWriter
     */
    public final CGWriter<CGInterface> getInterfaceWriter()
    {
        return _interfaceWriter;
    }
}
